# 此示例示意用paramiko模块自动化的操作远程主机

# 步骤
# 1. 导入paramiko
# 2. 创建一个 paramiko的客户端对象
# 3. 置自动接受服务器的主机密钥
# 4. 登陆远程主机
# 5. 在此处操作远程主机
# 6. 关闭连接

# 1. 导入paramiko
import paramiko

# 2. 创建一个 paramiko的客户端对象
ssh_client = paramiko.SSHClient()

# 3. 设置自动接受服务器的主机密钥
ssh_client.set_missing_host_key_policy(
    paramiko.AutoAddPolicy())

# 4. 登陆远程主机
ssh_client.connect(
    'localhost',  # 主机名或者IP
    username='root',
    password='root',
    allow_agent=False,
    look_for_keys=False,
    port=22  # ssh 的端口号
)
# 5. 在此处操作远程主机
r = ssh_client.exec_command('mkdir /weimingze;')
r2 = ssh_client.exec_command('id root;id zhangsan')
# print(r2)
stdin = r2[0]  # 标准输入，相当于键盘
stdout = r2[1]  # 标准输出，相当于终端
stderr = r2[2]  #  标准错误输出，相当于终端
print('标准输出:', stdout.read().decode())
print('标准错误输出：', stderr.read().decode())

# 6. 关闭连接
import time
time.sleep(1)
ssh_client.close()  # 相当于在 ssh 内部执行 exit 命令来推出连接


